package com.gxp.system.service;

import com.gxp.system.domain.ZkInstrument;

import java.util.List;

/**
 * 仪器Service接口
 * 
 * @author zh
 * @date 2024-03-08
 */
public interface IZkInstrumentService 
{
    /**
     * 查询仪器
     * 
     * @param instId 仪器主键
     * @return 仪器
     */
    public ZkInstrument selectZkInstrumentByInstId(Long instId);

    /**
     * 查询仪器列表
     * 
     * @param zkInstrument 仪器
     * @return 仪器集合
     */
    public List<ZkInstrument> selectZkInstrumentList(ZkInstrument zkInstrument);

    /**
     * 新增仪器
     * 
     * @param zkInstrument 仪器
     * @return 结果
     */
    public int insertZkInstrument(ZkInstrument zkInstrument);

    /**
     * 修改仪器
     * 
     * @param zkInstrument 仪器
     * @return 结果
     */
    public int updateZkInstrument(ZkInstrument zkInstrument);

    /**
     * 批量删除仪器
     * 
     * @param instIds 需要删除的仪器主键集合
     * @return 结果
     */
    public int deleteZkInstrumentByInstIds(String instIds);

    /**
     * 删除仪器信息
     * 
     * @param instId 仪器主键
     * @return 结果
     */
    public int deleteZkInstrumentByInstId(Long instId);

    /**
     * 修改仪器状态
     */
    int changeStatus(ZkInstrument instrument);

    /**
     * 仪器重名校验
     */
    boolean checkInstNameUnique(ZkInstrument instrument);

    /**
     * 根据项目申请查询可用仪器列表
     * @param reqId
     * @return
     */
    List<ZkInstrument> selectZkInstrumentListByReqId(Long reqId);

    /**
     * 仪器审核
     * @param instrument
     * @return
     */
    int approve(ZkInstrument instrument);

    /**
     * hostId重复检验
     */
    boolean checkHostIdUnique(ZkInstrument instrument);

    /**
     * 根据hostId查询仪器信息
     * @param hostId
     * @return
     */
    ZkInstrument selectZkInstrumentByHostId(String hostId);
}
